package com.hank.util;

import net.sourceforge.pinyin4j.PinyinHelper;

/**
 * @author gaoZhiHao
 * @date 2023/5/22 15:49
 */
public class PinyinUtil {
    /**
     * 将汉字转化为拼音全拼
     *
     * @param str 汉字字符串
     * @return 对应拼音全拼
     */
    public static String getPinyin(String str) {

        if (str == null || str.trim().length() == 0) {
            return "";
        }

        StringBuilder sb = new StringBuilder();
        char[] charArray = str.toCharArray();

        for (char c : charArray) {
            // 使用 pinyin4j 库将汉字转化为拼音数组
            String[] pinyinArr = PinyinHelper.toHanyuPinyinStringArray(c);

            // 如果字符不是汉字，则忽略
            if (pinyinArr == null || pinyinArr.length == 0) {
                sb.append(c);
            } else {
                sb.append(pinyinArr[0]);
            }
        }

        return sb.toString();
    }

    /**
     * 将汉字转化为拼音首字母
     *
     * @param str 汉字字符串
     * @return 对应拼音首字母
     */
    public static String getFirstSpell(String str) {
        if (str == null || str.trim().length() == 0) {
            return "";
        }

        StringBuilder sb = new StringBuilder();
        char[] charArray = str.toCharArray();

        for (char c : charArray) {
            // 使用 pinyin4j 库将汉字转化为拼音数组
            String[] pinyinArr = PinyinHelper.toHanyuPinyinStringArray(c);

            // 如果字符不是汉字，则忽略
            if (pinyinArr == null || pinyinArr.length == 0) {
                sb.append(c);
            } else {
                sb.append(pinyinArr[0].charAt(0));
            }
        }

        return sb.toString().toUpperCase();
    }
}
